package study.core.rdd.operator

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * 转换算子之glom操作
 * 将同一个分区的数据直接转换为相同类型的内存数组进行处理，分区不变
 *
 * @author zh
 * @date 2021/5/15 10:47
 */
object TestGlom {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("rddMap")
    val context = new SparkContext(sparkConf)

    // 准备集合
    val list = List(1, 2, 3, 4)
    // 创建RDD
    val rdd: RDD[Int] = context.makeRDD(list,2)

    // 会将分区内数据组合成数组
    val result: RDD[Array[Int]] = rdd.glom()


    result.collect().foreach(data => {
      println(">>>>>>>>>")
      println(data.mkString(","))
    })

    context.stop()

    //>>>>>>>>>
    //1,2
    //>>>>>>>>>
    //3,4
  }

}
